package haggisworld;

/**
 * In dieser Klasse wird die Karte definiert. Name,Farbe, Rang, Punkte werden
 * mit getMethoden definiert.
 *
 * @author Benjamin Loosli
 * @return Name,Farbe,Rang,Punkte einer Karte
 */
import java.io.Serializable;

public class Karte implements Serializable, Comparable {
    // Name und Punkte sind final weil diese nicht mehr abgeändert werden
    // dürfen.
    private final String name;
    private String farbe;
    private int rang;
    private final int punkte;

    public Karte(String n, String f, int r, int p) {
        this.name = n;
        this.farbe = f;
        this.rang = r;
        this.punkte = p;
    }

    public String getName() {
        return this.name;
    }

    public void setFarbe(String farbe) {
        this.farbe = farbe;
    }

    public String getFarbe() {
        return farbe;
    }

    public int getWert() {
        return rang;
    }

    public void setWert(int rang) {
        this.rang = rang;
    }

    public int getPunkte() {
        return punkte;
    }

    @Override
    public int compareTo(Object o) {
        Karte e = (Karte) o;

        return name.compareTo(e.getName());
    }

    @Override
    public String toString() {
        String str;
        str = "Kartenname: " + this.getName() + " ; Kartenfarbe: "
                + this.getFarbe() + " ; Kartennummer: " + this.getWert()
                + " ; Kartenpunkte: " + this.getPunkte();

        return str;
    }
}
